package com.qijian.tool.utils;

import java.math.BigDecimal;

public class BigDecimalCal {

    /**
     * BigDecimal 相加 带去重
     *
     * @param a
     * @param b
     * @return
     */
    public static BigDecimal add(BigDecimal a, BigDecimal b) {
        if (null == a) {
            a = BigDecimal.ZERO;
        }
        if (null == b) {
            b = BigDecimal.ZERO;
        }
        return a.add(b);

    }

    public static BigDecimal round(BigDecimal a) {
        if (a == null) {
            return BigDecimal.ZERO;
        }
        return round(a, 2);

    }

    public static BigDecimal round(BigDecimal a, int newScale) {
        if (a == null) {
            return BigDecimal.ZERO;
        }
        return a.setScale(newScale, BigDecimal.ROUND_HALF_UP);

    }

    /**
     * 乘法
     * @param a 被乘数
     * @param b 乘数
     * @return 积
     */
    public static BigDecimal multiply(BigDecimal a, BigDecimal b){
        if (null == a) {
            a = BigDecimal.ZERO;
        }
        if (null == b) {
            b = BigDecimal.ZERO;
        }
        return a.multiply(b);
    }

    /**
     * 除法
     * @param a 被除数
     * @param b 除数
     * @return 商
     */
    public static BigDecimal divide(BigDecimal a, BigDecimal b){
        if (null == a) {
            a = BigDecimal.ZERO;
        }
        if (null == b) {
            b = BigDecimal.ONE;
        }
        return a.divide(b, 6, BigDecimal.ROUND_HALF_UP);
    }
}
